﻿using System;
using System.Collections.Generic;

namespace RestaurantCommon
{
    public class PhcSale
    {
        private readonly string _userName;
        private readonly DateTime _emission;
        private readonly string _clientName;
        private readonly string _clientFiscalNumber;
        private readonly long _clientNumber;
        private readonly string _clientCity;
        private readonly string _clientStreet;
        private readonly string _clientZipCode;
        private readonly string _clientZone;
        private readonly string _clientPhone;
        private readonly string _clientMail;
        private readonly string _clientRemarks;
        private readonly string _paymentType;
        private readonly decimal _toPayValue;
        private readonly decimal _paidValue;
        private readonly List<PhcSaleItem> _items;

        public PhcSale(string stamp, decimal? number, string userName, DateTime emission, string clientName, string clientFiscalNumber, long clientNumber, string clientCity, 
            string clientStreet, string clientZipCode, string clientZone, string clientPhone, string clientMail, string clientRemarks, string paymentType, decimal valueToPay, 
            decimal valuePaid, List<PhcSaleItem> items)
        {
            Stamp = stamp;
            Number = number;
            _userName = userName;
            _emission = emission;
            _clientName = clientName;
            _clientFiscalNumber = clientFiscalNumber;
            _clientNumber = clientNumber;
            _clientCity = clientCity;
            _clientStreet = clientStreet;
            _clientZipCode = clientZipCode;
            _clientZone = clientZone;
            _clientPhone = clientPhone;
            _clientMail = clientMail;
            _clientRemarks = clientRemarks;
            _paymentType = paymentType;
            _toPayValue = valueToPay;
            _paidValue = valuePaid;
            _items = items;
        }

        public string Stamp { get; set; }
        public decimal? Number { get; set; }
        public string UserName { get { return _userName; } }
        public DateTime Emission { get { return _emission; } }
        public string ClientName { get { return _clientName; } }
        public string ClientFiscalNumber { get { return _clientFiscalNumber; } }
        public long ClientNumber { get { return _clientNumber; } }
        public string ClientCity { get { return _clientCity; } }
        public string ClientStreet { get { return _clientStreet; } }
        public string ClientZipCode { get { return _clientZipCode; } }
        public string ClientZone { get { return _clientZone; } }
        public string ClientPhone { get { return _clientPhone; } }
        public string ClientMail { get { return _clientMail; } }
        public string ClientRemarks { get { return _clientRemarks; } }
        public string PaymentType { get { return _paymentType; } }
        public decimal ToPayValue { get { return _toPayValue; } }
        public decimal PaidValue { get { return _paidValue; } }
        public List<PhcSaleItem> Items { get { return _items; } }
    }
}
